import { ipcRenderer, contextBridge } from 'electron'

// --------- 向渲染进程暴露一些 API ---------
contextBridge.exposeInMainWorld('ipcRenderer', {
  // 监听来自主进程的事件
  on(...args) {
    const [channel, listener] = args
    return ipcRenderer.on(channel, (event, ...args) => listener(event, ...args))
  },
  // 移除事件监听器
  off(...args) {
    const [channel, ...omit] = args
    return ipcRenderer.off(channel, ...omit)
  },
  // 向主进程发送消息（单向，不需要响应）
  send(...args) {
    const [channel, ...omit] = args
    return ipcRenderer.send(channel, ...omit)
  },
  // 向主进程发送消息并等待响应（双向通信）
  invoke(...args) {
    const [channel, ...omit] = args
    return ipcRenderer.invoke(channel, ...omit)
  },

  // 你可以在这里暴露其他需要的 API
  // ...
})
